A Max-SMT Superoptimizer for EVM handling Memory and Storage

نویسندگان

چکیده

Abstract Superoptimization is a compilation technique that searches for the optimal sequence of instructions semantically equivalent to given (loop-free) initial sequence. With advent SMT solvers, it has been successfully applied LLVM code (to reduce number instructions) and Ethereum EVM bytecode its gas consumption). Both applications, when proven practical, have left out memory operations thus missed important optimization opportunities. A main challenge superoptimization today handling while remaining scalable. We present $$\textsf {GASOL}^{v2}$$ GASOL v 2 , bytes-size tool smart contracts, leverages previous Max-SMT approach only stack optimize also wrt. storage. can be used size in bytes, aligned with criterion by Solidity compiler consumption. Our experiments on 12,378 blocks from 30 randomly selected real contracts achieve gains 16.42% version optimizer without handling, 3.28% over already optimized .

برای دانلود باید عضویت طلایی داشته باشید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Handling Technical OOVs in SMT

We present a project on machine translation of software help desk tickets, a highly technical text domain. The main source of translation errors were out-of-vocabulary tokens (OOVs), most of which were either in-domain German compounds or technical token sequences that must be preserved verbatim in the output. We describe our efforts on compound splitting and treatment of non-translatable token...

متن کامل

Souper: A Synthesizing Superoptimizer

If we can automatically derive compiler optimizations, we might be able to sidestep some of the substantial engineering challenges involved in creating and maintaining a highquality compiler. We developed Souper, a synthesizing superoptimizer, to see how far these ideas might be pushed in the context of LLVM. Along the way, we discovered that Souper’s intermediate representation was sufficientl...

متن کامل

Proving Non-termination Using Max-SMT

We show how Max-SMT-based invariant generation can be exploited for proving non-termination of programs. The construction of the proof of nontermination is guided by the generation of quasi-invariants – properties such that if they hold at a location during execution once, then they will continue to hold at that location from then onwards. The check that quasi-invariants can indeed be reached i...

متن کامل

Handling Request Variability for QoS-Max Measures

We denote as QoS-max the control of a request processing system to try to maximize QoS qualities and we focus on external, non-intrusive approaches with statistics on readily measurable quantities. In order to do this, the controller characterizes requests in terms of response times (or resource use) and uses that characterization to try to achieve QoS-max. However, measures vary both between d...

متن کامل

passivity in waiting for godot and endgame: a psychoanalytic reading

this study intends to investigate samuel beckett’s waiting for godot and endgame under the lacanian psychoanalysis. it begins by explaining the most important concepts of lacanian psychoanalysis. the beckettian characters are studied regarding their state of unconscious, and not the state of consciousness as is common in most beckett studies. according to lacan, language plays the sole role in ...

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Lecture Notes in Computer Science

سال: 2022

ISSN: ['1611-3349', '0302-9743']

DOI: https://doi.org/10.1007/978-3-030-99524-9_11